package com.lxmes.sales.mapper;

import java.util.List;

import com.lxmes.common.annotation.DataScope;
import com.lxmes.sales.domain.CcPurchaseInfoVo;
import com.lxmes.sales.domain.NcContract;
import com.lxmes.sales.domain.NcSalesOrder;
import org.apache.ibatis.annotations.Param;

/**
 * 销售正式订单Mapper接口
 *
 * @author ruoyi
 * @date 2022-11-23
 */
public interface NcSalesOrderMapper
{
    /**
     * 查询销售正式订单
     *
     * @param id 销售正式订单主键
     * @return 销售正式订单
     */
    public NcSalesOrder selectNcSalesOrderById(Long id);

    /**
     * 查询销售正式订单列表
     *
     * @param ncSalesOrder 销售正式订单
     * @return 销售正式订单集合
     */
    @DataScope(deptAlias = "o")
    public List<NcSalesOrder> selectNcSalesOrderList(NcSalesOrder ncSalesOrder);
    public List<NcSalesOrder> selectNcSalesOrder(NcSalesOrder ncSalesOrder);

    /**
     * 新增销售正式订单
     *
     * @param ncSalesOrder 销售正式订单
     * @return 结果
     */

    public int insertNcSalesOrder(NcSalesOrder ncSalesOrder);
    public int insertCcPurchaseInfo(CcPurchaseInfoVo ccPurchaseInfoVo);
    public List<CcPurchaseInfoVo> selectPurchaseInfo(CcPurchaseInfoVo ccPurchaseInfoVo);

    public int updateCcPurchaseInfo(CcPurchaseInfoVo ccPurchaseInfoVo);


    /**
     * 修改销售正式订单
     *
     * @param ncSalesOrder 销售正式订单
     * @return 结果
     */
    public int updateNcSalesOrder(NcSalesOrder ncSalesOrder);

    /**
     * 删除销售正式订单
     *
     * @param id 销售正式订单主键
     * @return 结果
     */
    public int deleteNcSalesOrderById(Long id);

    /**
     * 批量删除销售正式订单
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteNcSalesOrderByIds(Long[] ids);


    String getNewCode(String date);
    String getCaiGouNewCode(String date);
    String getChukuNewCode(String date);

    void updateContractState(@Param("state") String s, @Param("contractNo") String contractNo);

    NcContract getClientContraNo(String contractNo);
}
